package br.gov.mi.corporativo.dominio.boundary.rhmi.funcionariodocumento;

import java.util.Date;
import java.util.List;

import javax.inject.Inject;
import javax.jws.WebService;

import org.springframework.stereotype.Component;
import org.springframework.transaction.annotation.Transactional;

import br.gov.mi.corporativo.dominio.entidade.rhmi.FuncionarioDocumento;
import br.gov.mi.corporativo.dominio.repositorio.rhmi.FuncionarioDocumentoRepositorio;
import br.gov.mi.infraestrutura.crud.CrudServicoImpl;

@Component
@Transactional(readOnly=true)
@WebService(endpointInterface = "br.gov.mi.corporativo.dominio.boundary.rhmi.funcionariodocumento.FuncionarioDocumentoEndPoint")
public class FuncionarioDocumentoServico extends CrudServicoImpl<FuncionarioDocumento, Long, FuncionarioDocumentoRepositorio>  implements FuncionarioDocumentoEndPoint{

	@Inject
	public void setRepository(FuncionarioDocumentoRepositorio repositorio) {
		super.setRepositorio(repositorio);
	}

	@Override
	public FuncionarioDocumento recuperarPorIdFuncionarioDocumento(Long idFuncionarioDocumento) {
		return repositorio.findByIdFuncionarioDocumento(idFuncionarioDocumento);
	}

	@Override
	public List<FuncionarioDocumento> recuperarPorFuncionario(Long funcionario) {
		return repositorio.findByFuncionario(funcionario);
	}

	@Override
	public List<FuncionarioDocumento> recuperarPorIdTipoDocumento(Long idTipoDocumento) {
		return repositorio.findByIdTipoDocumento(idTipoDocumento);
	}

	@Override
	public List<FuncionarioDocumento> recuperarPorIdUf(Long idUf) {
		return repositorio.findByIdUf(idUf);
	}

	@Override
	public List<FuncionarioDocumento> recuperarPorIdMunicipio(Long idMunicipio) {
		return repositorio.findByIdMunicipio(idMunicipio);
	}

	@Override
	public List<FuncionarioDocumento> recuperarPorNrDocumento(String nrDocumento) {
		return repositorio.findByNrDocumento(nrDocumento);
	}

	@Override
	public List<FuncionarioDocumento> recuperarPorNrSecao(Long nrSecao) {
		return repositorio.findByNrSecao(nrSecao);
	}

	@Override
	public List<FuncionarioDocumento> recuperarPorNrZona(Long nrZona) {
		return repositorio.findByNrZona(nrZona);
	}

	@Override
	public List<FuncionarioDocumento> recuperarPorDtEmissao(Date dtEmissao) {
		return repositorio.findByDtEmissao(dtEmissao);
	}

	@Override
	public List<FuncionarioDocumento> recuperarPorDtValidade(Date dtValidade) {
		return repositorio.findByDtValidade(dtValidade);
	}

	@Override
	public List<FuncionarioDocumento> recuperarPorStRegistro(String stRegistro) {
		return repositorio.findByStRegistro(stRegistro);
	}
	
}
